home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC-SIG: World of Games
/
PC-SIG World of Games (CDRM1080710) (1993).iso
/
262
/
AMAIN.UNO
< prev
next >
Wrap
Text File
|
1985-12-26
|
15KB
|
310 lines
490 '*************************************************************
492 '***** PC-GOLF THE GOLFER's PROGRAM PC-GOLF *****
494 '***** Version 1.5 (C) 1983,1984,1985 Ed Chandler *****
496 '*************************************************************
498 DEFINT A-Z:DEF FNNMODM(N,M)=N-(M*INT(N/M))
499 GOTO 6030 'GOTO 3030,PC-GOLF INITIALIZATION or GOTO 6030,MAIN
500 GOTO 3670 'special return from INIT.ASC(not for user version)
510 GOTO 8350 'on error go to subroutine
520 GOTO XXXX 'init PLAYER.DAT
530 GOTO 6350 'return from chained programs
540 GOTO 6430 'display course directory
550 GOTO 6890 'display player roster`
560 GOTO 1040 'prompter 1,M1$=prompt, return KB=(0-9), KB$=input char.
570 GOTO 1120 'prompter 2,M1$,M2$=prompt, return KB=(0-9), KB$=input char.
580 GOTO 1210 'prompter 3 with BEEP, prompt-Press space bar to continue.
590 GOTO 1220 'prompter 3 no beep
600 GOTO 1300 'prompter 4,M1$=prompt, return KB$= Y or N
610 GOTO 1400 'prompter 5 prompt-Input error. Try again. Press space bar ...
611 GOTO 1440 'prompter 6 on line 25-choose line #, press space bar
620 GOTO 1500 'open #1 INIT.DAT
630 GOTO 1560 'update #1 - PACT
640 GOTO 1610 'update #1 - CACT
641 GOTO 1660 'open #1 TEMP.DAT
650 GOTO 1710 'open #2 GCDIR.DAT
655 GOTO 1770 'OPEN #3 COURSE.DAT
656 GOTO 1810 'init A2B$ & A3B$
660 GOTO 1870 'open #4 PDIR.DAT
661 GOTO 1910 'init A4B$
670 GOTO 1950 'open #5 PLAYER.DAT
671 GOTO 2000 'init E5$-O5$
672 GOTO 2030 'init A5$-O5$
680 GOTO 7090 'convert integers in PS(i) to a string in P$
690 GOTO XXXX 'convert integers in PS(i) to a MKI$ string in P$
700 GOTO 7140 'remove excess blanks from KB$
710 GOTO 7250 'calculate par for the course
720 GOTO 7400 'get integers from keyboard [zero's?]
730 GOTO 7750 'change P$ to integers in PS(i)
740 GOTO 7820 'change a number on a line in PS(i) [zero's?]
750 GOTO 4570 'debug dump display players tally record
760 GOTO XXXX 'calculate adjusted score, USGA rules [moved to TALLY]
770 GOTO XXXX 'PLOT subroutine [moved to PERFORM]
780 GOTO 4810 'debug INIT.DAT DUMP
790 GOTO 4920 'debug GCDIR.DAT, COURSE.DAT DUMP
800 GOTO 5140 'debug PDIR.DAT DUMP
810 GOTO 8110 'print messages subroutine(using restores)
811 '+++++ data tables for message subroutines
812 DATA 1,3,1,2,6
813 DATA 1,4,1,7,20,14
814 DATA 1,3,1,8,14
815 DATA 1,5,1,2,5,16,13
816 DATA 1,3,1,2,10
817 DATA 1,5,1,2,3,11,13
818 DATA 1,5,1,2,3,11,12
819 DATA 1,5,1,2,4,16,13
820 DATA 1,5,1,2,4,11,13
821 DATA 1,5,1,2,3,11,15
822 DATA 1,4,17,2,22,23
823 DATA 1,5,1,2,4,16,15
824 DATA 1,5,1,2,4,11,15
825 DATA 1,6,17,2,3,7,18,21
826 DATA 1,6,17,2,3,7,19,21
827 DATA 1,6,17,2,3,7,28,30
828 DATA 1,6,17,2,3,7,29,30
829 DATA 1,6,17,2,3,7,28,31
830 DATA 1,6,17,2,3,7,29,31
831 DATA 1,6,17,2,3,7,28,32
832 DATA 1,6,17,2,3,7,29,32
833 DATA 1,3,17,2,10
834 DATA 1,1,9
835 DATA 1,3,1,2,24
836 DATA 2,5,25,10,25,26,27
837 DATA 3,3,25,10,69
838 DATA 2,3,25,10,25
839 DATA 3,3,14,1,12
840 DATA 3,3,15,1,52
841 DATA 2,3,4,5,3
1040 KB$=INKEY$:IF KB$<>"" THEN 1040
1050 PRINT M1$;
1060 KB$=INKEY$:IF KB$="" THEN 1060
1070 KB=VAL(KB$):PRINT KB$:RETURN
1120 KB$=INKEY$:IF KB$<>"" THEN 1120
1130 COLOR 15,0,0:PRINT"You're away!"
1140 PRINT"PRESS the ";M1$;" of your choice. ";M2$;
1150 KB$=INKEY$:IF KB$="" THEN 1150
1160 KB=VAL(KB$):PRINT KB$:COLOR 7,0,0:RETURN
1210 BEEP
1220 KB$=INKEY$:IF KB$<>"" THEN 1220
1230 LOCATE CSRLIN,POS(0),0:PRINT:PRINT"PRESS the space bar to continue. ";
1240 KB$=INKEY$:IF KB$<>" " THEN 1240
1250 LOCATE CSRLIN,POS(0),1:RETURN
1300 KB$=INKEY$:IF KB$<>"" THEN 1300
1310 PRINT:GOSUB 810:PRINT" (y or n)? ";
1320 KB$=INKEY$:IF KB$="" THEN 1320
1330 IF KB$="N" OR KB$="n" THEN KB$="N":GOTO 1360
1340 IF KB$<>"Y" AND KB$<>"y" THEN 1320
1350 KB$="Y"
1360 PRINT KB$:RETURN
1400 PRINT:PRINT"Input error. Try again.":GOSUB 580:RETURN
1440 BEEP:LOCATE 25,1:PRINT"Please choose a line number from the list.";
1450 PRINT SPC(2)"PRESS the space bar to continue.";
1460 KB$=INKEY$:IF KB$<>" " THEN 1460 ELSE RETURN
1500 OPEN DEV$+DAT1$+DAT$ AS #1 LEN=16
1510 FIELD #1,2 AS NMAX$,2 AS CMAX$,2 AS CACT$,2 AS PMAX$,2 AS PACT$,1 AS A1$,1 AS B1$,1 AS C1$,1 AS D1$
1520 FIELD #1,16 AS A1B$:RETURN
1560 GOSUB 620:GET #1,1:PACT=PACT+X 'update active player count
1570 RSET PACT$=MKI$(PACT):PUT #1,1:CLOSE #1:RETURN
1610 GOSUB 620:GET #1,1:CACT=CACT+X 'update active courses
1620 RSET CACT$=MKI$(CACT):PUT #1,1:CLOSE #1:RETURN
1660 OPEN DEV$+DAT4$+DAT$ AS #1 LEN=NMAX
1670 FIELD #1,NMAX AS TA1$:RETURN
1710 OPEN DEV$+DAT2$+DAT$ AS #2 LEN=L2
1720 FIELD #2,2 AS A2$,NMAX AS B2$,8 AS C2$,NMAX AS D2$
1730 FIELD #2,L2 AS A2B$:RETURN
1770 OPEN DEV$+CM4$+DAT$ AS #3 LEN=L3
1780 FIELD #3,2 AS A3$,18 AS E2$,4 AS F2$,36 AS G2$,18 AS H2$,4 AS I2$,36 AS J2$,4 AS K2$,4 AS L2$
1790 FIELD #3,L3 AS A3B$:RETURN
1810 RSET A2B$=STRING$(L2,"*"):RSET A2$=MKI$(0)
1820 RSET A3B$=STRING$(L3,"*"):RSET A3$=A2$:RSET F2$=MKS$(0):RSET I2$=F2$
1830 RSET K2$=F2$:RSET L2$=F2$:RETURN
1870 OPEN DEV$+DAT3$+DAT$ AS #4 LEN=L4
1880 FIELD #4,2 AS A4$,NMAX AS B4$,8 AS C4$,3 AS D4$,2 AS E4$,1 AS F4$,1 AS G4$,2 AS H4$
1890 FIELD #4,L4 AS A4B$:RETURN
1910 LSET A4B$=STRING$(L4,"*"):RSET A4$=MKI$(0):RETURN
1950 OPEN DEV$+CM3$+DAT$ AS #5 LEN=L5
1960 FIELD #5,1 AS A5$,2 AS B5$,3 AS C5$,40 AS D5$,2 AS E5$,40 AS F5$,36 AS G5$, 18 AS H5$,2 AS I5$,2 AS J5$,40 AS K5$,36 AS L5$,18 AS M5$,2 AS N5$,2 AS O5$,8 AS P5$
1970 FIELD #5,L5-1 AS PLAYER$
1980 FIELD #5,46 AS A5D$,L5-47 AS E5P$:RETURN
2000 LSET E5P$=STRING$(L5-47,MKI$(0)):LSET H5$=STRING$(18,"9"):LSET M5$=H5$
2010 RSET I5$=MKI$(999):RSET N5$=I5$:RSET P5$=STRING$(8,"*"):RETURN
2030 LSET PLAYER$=STRING$(L5-1,MKI$(0)):RSET P5$=STRING$(8,"*")
2040 LSET H5$=STRING$(18,"9"):LSET M5$=H5$
2050 RSET I5$=MKI$(999):RSET N5$=I5$
2060 RSET A5$="I":LSET B5$="00":LSET C5$="99*"
2070 P$="":FOR I=1 TO 20:P$=P$+MKI$(-99):NEXT I:RSET D5$=P$:RETURN
6030 CLOSE:GOTO 6070 'CALL MENU
6070 CLS:PRINT"PC-GOLF THE GOLFER's PROGRAM PC-GOLF":PRINT
6072 IF ROS=0 THEN 6100
6080 DEF SEG=&H40:I%=PEEK(&H17):I%=I% AND NOT 64:POKE &H17,I% 'caps lock off
6090 DEF SEG=&H40:I%=PEEK(&H17):I%=I% OR 32:POKE &H17,I% 'num lock on
6100 PRINT"Version 1.5 (C) Copyright 1984 Ed Chandler"
6102 PRINT SPC(11)"User Supported Software":PRINT
6110 PRINT" Make your choice from the menu.":PRINT
6120 MNU1$="1. Introduction.":PRINT MNU1$
6130 MNU2$="2. Tally the scores for a round.":PRINT MNU2$
6140 MNU5$="3. Get the golfer's score sheet.":PRINT MNU5$
6150 MNU4$="4. Get the golf course list.":PRINT MNU4$
6160 MNU3$="5. Get the golfers roster.":PRINT MNU3$
6170 MNU6$="6. Quit. Going to the 19th hole.":PRINT MNU6$
6180 PRINT:LOCATE CSRLIN,POS(0),1
6190 M1$="number":M2$="(1,2,3,4,5 or 6). ":GOSUB 570
6200 IF KB<1 OR KB>6 THEN GOSUB 610:GOTO 6070
6220 COLOR 0,15,0:LOCATE 7,1,0
6230 IF KB=1 THEN LOCATE CSRLIN+KB,POS(0):PRINT MNU1$:GOTO 6290
6240 IF KB=2 THEN LOCATE CSRLIN+KB,POS(0):PRINT MNU2$:GOTO 6290
6250 IF KB=3 THEN LOCATE CSRLIN+KB,POS(0):PRINT MNU5$:GOTO 6290
6260 IF KB=4 THEN LOCATE CSRLIN+KB,POS(0):PRINT MNU4$:GOTO 6290
6270 IF KB=5 THEN LOCATE CSRLIN+KB,POS(0):PRINT MNU3$:GOTO 6290
6280 IF KB=6 THEN LOCATE CSRLIN+KB,POS(0):PRINT MNU6$:GOTO 6290
6290 COLOR 7,0,0:RESTORE 839:GOSUB 810:RESTORE 840:GOSUB 810
6300 LOCATE 15,1,0:RESTORE 814:BEEP:GOSUB 600:IF KB$<>"Y" THEN 6070
6340 ON KB GOTO 8210,8230,8290,8270,8250,8310 'chain next program
6350 GOTO 6030 'BACK TO MAIN
6430 CD=1:IF CACT>0 THEN 6450 'not empty
6440 PRINT:PRINT "The course directory is empty.":CD=0:GOTO 6810
6450 GOSUB 650:GOSUB 655:PRINT:PRINT"PC-GOLF's Course Directory"
6460 PRINT:PRINT "Line # Course Information":PRINT
6470 T=0:FOR I=1 TO CMAX:TMP(I)=0:NEXT I
6480 FOR I=1 TO CMAX:GET #2,I:GET #3,I:N=CVI(A2$):IF N=0 THEN 6530
6490 TMP(I)=N:X$="":L=INSTR(1,B2$," ")-1:IF L<0 THEN L=NMAX
6500 X$=X$+LEFT$(B2$,L):L=INSTR(1,D2$," ")-1:IF L<0 THEN L=NMAX
6510 X$=X$+", "+C2$+", "+LEFT$(D2$,L):PRINT N;SPC(4);X$
6520 T=T+1:IF T=CACT THEN 6540 'tra no more courses
6530 NEXT
6540 CLOSE #2,#3:IF M1<>1 THEN 6810 'test opt. print
6550 RESTORE 822:GOSUB 600:IF KB$<>"Y" THEN 6810
6560 PRINT:M1$="PRESS the line number of the course you want. "
6570 GOSUB 560:IF KB>0 AND KB<=CMAX AND TMP(KB)=KB THEN RN=KB:GOTO 6600
6580 PRINT:PRINT"You must choose a number from the list."
6590 GOSUB 580:CLS:PRINT MNU1$:GOTO 540
6600 RN=KB:GOSUB 650:GOSUB 655:GET #2,RN:GET #3,RN:CLOSE #2,#3 'get course
6610 CLS:KB$=B2$:GOSUB 700:LOCATE 3,1
6620 PRINT SPC(36-L/2):COLOR 0,15,0:PRINT " "+KB$+" ":COLOR 7,0,0:PRINT
6630 PRINT"HOLE #"SPC(1):FOR I=1 TO 18:IF I=10 THEN PRINT SPC(6)
6640 PRINT USING"###";I;:NEXT:PRINT:PRINT"PAR":P$=E2$:GOSUB 710
6650 PRINT"Men"SPC(4):FOR I=1 TO 18:IF I=10 THEN PRINT SPC(1)F9;SPC(1)
6660 PRINT USING "###";CP(I);:NEXT:PRINT SPC(1)B9;SPC(1)PAR:P$=H2$:GOSUB 710
6670 PRINT"Ladies"SPC(1):FOR I=1 TO 18:IF I=10 THEN PRINT SPC(1)F9;SPC(1)
6680 PRINT USING "###";CP(I);:NEXT:PRINT SPC(1)B9;SPC(1)PAR:LOCATE CSRLIN+3,1
6690 PRINT"HOLE #"SPC(1):FOR I=1 TO 18:IF I=10 THEN PRINT SPC(6)
6700 PRINT USING"###";I;:NEXT:PRINT:PRINT"H'CAP"
6710 PRINT"Men"SPC(4):FOR I=1 TO 36 STEP 2:IF I=19 THEN PRINT SPC(6)
6720 PRINT USING "###";VAL(MID$(G2$,I,2));:NEXT:PRINT
6730 PRINT"Ladies"SPC(1):FOR I=1 TO 36 STEP 2:IF I=19 THEN PRINT SPC(6)
6740 PRINT USING "###";VAL(MID$(J2$,I,2));:NEXT:PRINT
6750 LOCATE CSRLIN+2,1:PRINT"COURSE RATING"
6760 IF CVS(K2$)<>0 THEN PRINT USING"GOLD ##.#";CVS(K2$)
6770 IF CVS(L2$)<>0 THEN PRINT USING"BLUE ##.#";CVS(L2$)
6780 IF CVS(F2$)<>0 THEN PRINT USING"WHITE ##.#";CVS(F2$)
6790 IF CVS(I2$)<>0 THEN PRINT USING"RED ##.#";CVS(I2$)
6800 GOSUB 590
6810 RETURN
6890 PR=1:IF PACT>0 THEN 6910 'TRA IF ROSTER NOT EMPTY
6900 PRINT:PRINT "The Player Roster is empty.":PR=0:RETURN
6910 GOSUB 660:PRINT:IF X=0 THEN 6940
6920 PRINT SPC(8)"PC-GOLF's Player Roster":PRINT"LINE # Player's Name";
6930 PRINT SPC(7);" Phone";SPC(4);"H'cap";SPC(2);"Home Course/tee"
6940 T=0:FOR I=1 TO PMAX:TMP(I)=0:NEXT I
6950 FOR I=1 TO PMAX:GET #4,I:N=CVI(A4$):IF N=0 THEN 7000
6960 TMP(I)=N:PRINT USING "###";N;:PRINT SPC(5);B4$; 'ID AND NAME
6970 N=VAL(E4$):KB$=MID$(GCDIR$(N),2,NMAX):GOSUB 700:N$=KB$+"/"+G4$
6980 T$=D4$:X=VAL(LEFT$(D4$,2)):P$=RIGHT$(D4$,2):IF X<0 THEN T$="+"+P$
6990 PRINT C4$;SPC(3);T$;SPC(2);N$:T=T+1:IF T=PACT THEN 7010 'no more recs
7000 NEXT
7010 CLOSE #4:RETURN
7090 P$="":FOR I=1 TO M:P$=P$+RIGHT$(STR$(PS(I)),N)+N$:NEXT
7100 L=LEN(P$):RETURN
7140 T$="":Q=1:L=LEN(KB$)
7150 IF MID$(KB$,L,1)=" " THEN KB$=LEFT$(KB$,L-1):L=L-1:GOTO 7150
7160 IF MID$(KB$,1,1)=" " THEN KB$=MID$(KB$,2,L-1):L=LEN(KB$):GOTO 7160
7180 S=INSTR(Q,KB$,SPACE$(2)):IF S=0 THEN 7200
7190 T$=MID$(KB$,1,S-1)+MID$(KB$,S+1,L-S):KB$=T$:Q=S:L=LEN(KB$):GOTO 7180
7200 RETURN
7250 F9=0:B9=0:FOR I=1 TO 9:P=VAL(MID$(P$,I,1)):CP(I)=P:F9=F9+P
7260 P=VAL(MID$(P$,I+9,1)):CP(I+9)=P:B9=B9+P:NEXT:PAR=F9+B9:RETURN
7400 DGT$="":SUM=0:Z=0:LOCATE CSRLIN,POS(0),1
7410 KB$=INKEY$:IF KB$<>"" THEN 7410
7420 FOR I=1+L TO M+L
7430 PRINT SPC(7);I;SPC(5);:X=POS(0):LIN=CSRLIN
7440 KB$=INKEY$:IF KB$="" THEN 7440
7450 Y=ASC(KB$):IF Y<>8 THEN 7490
7460 T=POS(0):IF T>X THEN T=T-1:LOCATE CSRLIN,T
7470 Z=0:Y=LEN(DGT$):IF Y>0 THEN DGT$=LEFT$(DGT$,Y-1):Z=Y-1
7480 PRINT SPC(1):LOCATE CSRLIN,T:GOTO 7440
7490 IF Y>47 AND Y<58 THEN 7510
7500 IF Y=13 AND Z>0 THEN 7670 ELSE 7440
7510 Z=Z+1:IF Z>N THEN 7670
7520 PRINT KB$;:KB=VAL(KB$):IF S=0 THEN 7660 'no check
7530 IF S=1 THEN M2$=MSG$(42):M1=3:M2=5
7540 IF S=2 THEN M2$=MSG$(43):M1=1:M2=18
7550 IF S=3 THEN M2$=MSG$(44):M1=1:M2=9
7560 IF S=4 THEN M2$=MSG$(45):M1=1:M2=4
7570 IF S=2 THEN 7600 'hcap
7580 IF KB>=M1 AND KB<=M2 THEN 7660
7590 PRINT:PRINT M2$;MSG$(33);M1;MSG$(34);M2;MSG$(35):GOTO 7640
7600 IF Z=1 THEN T=KB:IF KB<>0 THEN 7660 ELSE 7630
7610 IF Z=2 AND T=1 AND KB<>9 THEN 7660
7620 DGT$=""
7630 PRINT:PRINT M1$;MSG$(33);M1;MSG$(34);M2;MSG$(35)
7640 GOSUB 590:LOCATE LIN,X:FOR J=1 TO 5:PRINT SPC(55):NEXT J
7650 LOCATE LIN,1:Z=0:GOTO 7430
7660 DGT$=DGT$+KB$:GOTO 7440
7670 PS(I)=VAL(DGT$):SUM=SUM+PS(I):Z=0:DGT$="":PRINT
7680 IF I=3+L OR I=6+L THEN PRINT
7690 NEXT:RETURN
7750 S=1:FOR I=1 TO M:PS(I)=VAL(MID$(P$,S,N)):S=S+N:NEXT I:RETURN
7820 CLS:PRINT T$:PRINT:PRINT SPC(4);"Line # Hole # ";M1$:X=0
7830 FOR I=1+L TO M+L:PRINT USING "#######";I-L,I,PS(I):X=X+PS(I)
7840 IF I=3+L OR I=6+L THEN PRINT
7850 NEXT I:IF S=1 OR S=3 OR S=4 THEN PRINT:PRINT SPC(11);M1$;" is ";X
7860 KB$=INKEY$:IF KB$<>"" THEN 7860
7870 PRINT:LNBR=CSRLIN:CNBR=POS(0)
7880 PRINT"PRESS the number of the line you want to change. ";
7890 KB$=INKEY$:IF KB$="" THEN 7890
7900 PRINT KB$:I=VAL(KB$):P=INSTR(1,N9$,KB$):IF P<>0 THEN 7950
7910 PRINT:PRINT"Your line number is incorrect. Try again.":GOSUB 590
7920 LOCATE LNBR,1:FOR I=1 TO 7:PRINT SPACE$(78);:NEXT
7930 LOCATE LNBR,CNBR:GOTO 7880
7940 KB$=INKEY$:IF KB$<>"" THEN 7940
7950 PRINT:LINE INPUT"ENTER the replacement number. ";KB$:T=VAL(LEFT$(KB$,2))
7960 IF S=0 THEN 8040 'no check
7970 IF S=1 THEN M2$=MSG$(42):M1=3:M2=5
7980 IF S=2 THEN M2$=MSG$(43):M1=1:M2=18
7990 IF S=3 THEN M2$=MSG$(44):M1=1:M2=9
8000 IF S=4 THEN M2$=MSG$(45):M1=1:M2=4
8010 IF T>=M1 AND T<=M2 THEN 8040
8020 PRINT:PRINT M2$;MSG$(33);M1;MSG$(34);M2;MSG$(35)
8030 GOSUB 590:GOTO 7920
8040 PS(I+L)=T:CLS:PRINT T$:PRINT:PRINT SPC(4);"Line # Hole # ";M1$
8050 X=0:FOR I=1+L TO M+L:PRINT USING "#######";I-L,I,PS(I)
8060 X=X+PS(I):IF I=3+L OR I=6+L THEN PRINT
8070 NEXT I
8080 IF S=1 OR S=3 OR S=4 THEN PRINT:PRINT SPC(11);M1$;" is ";X
8090 RETURN
8110 READ TYP:ON TYP GOSUB 8130,8150,8180:RETURN
8130 READ NBRI:FOR I=1 TO NBRI:READ MSG:PRINT MSG$(MSG);:NEXT:RETURN
8150 READ NBRI:READ H1:READ H2:LOCATE H1,H2
8160 FOR I=1 TO NBRI-2:READ MSG:PRINT MSG$(MSG);:NEXT:RETURN
8180 READ NBRI:READ H1:READ H2:LOCATE H1,H2
8190 READ H1:PRINT SPACE$(H1):RETURN
8210 IF CM$=CM1$ THEN 8330 ELSE RESTORE 836:GOSUB 810
8220 CM$=CM1$:CHAIN MERGE DEV$+"intro.asc" ,10000,ALL,DELETE 10000-15000
8230 IF CM$=CM2$ THEN 8330 ELSE RESTORE 836:GOSUB 810
8240 CM$=CM2$:CHAIN MERGE DEV$+"tally.asc" ,10000,ALL,DELETE 10000-15000
8250 IF CM$=CM3$ THEN 8330 ELSE RESTORE 836:GOSUB 810
8260 CM$=CM3$:CHAIN MERGE DEV$+"player.asc" ,10000,ALL,DELETE 10000-15000
8270 IF CM$=CM4$ THEN 8330 ELSE RESTORE 836:GOSUB 810
8280 CM$=CM4$:CHAIN MERGE DEV$+"course.asc" ,10000,ALL,DELETE 10000-15000
8290 IF CM$=CM5$ THEN 8330 ELSE RESTORE 836:GOSUB 810
8300 CM$=CM5$:CHAIN MERGE DEV$+"perform.asc" ,10000,ALL,DELETE 10000-15000
8310 IF CM$=CM6$ THEN 8330 ELSE RESTORE 838:GOSUB 810
8320 CM$=CM6$:CHAIN MERGE DEV$+"quit.asc" ,10000,ALL,DELETE 10000-15000
8330 GOTO 10000 'chain entry
8340 ' *** error traps
8350 IF ERR=25 OR ERR=27 THEN RESUME NEXT
8360 ON ERROR GOTO 0 ' up to basic
9999 'last statement
10000 '*************************************************************
15000 'for chain delete
to basic
9999 'last statemen